$(function () {
    var dept_datagrid = $("#dept_datagrid");
    var dept_dialog = $("#dept_dialog");
    
    dept_datagrid.datagrid({
        url:"/department/list",
        fit:true,
        columns:[[
            {field:'x',checkbox:true},
            {field:'id',title:'id',width:100,hidden:true}, //hidden 隐藏显示该列
            {field:'name',title:'部门名称',width:100},//允许列改变大小
            {field:'sn',title:'部门编号',width:100},


            {field:'state',title:'状态',width:100,formatter: function(value,row,index){
                if (value == 1){
                    return "<font color='green'>正常</font>";
                } else if(value == 0) {
                    return "<font color='red'>停用</font>";
                }
            }
            }
        ]],
        rownumbers:true,
        striped:true,
        toolbar:"#dept_toolbar",
        pagination:true,
        fitColumns:true,
        onClickRow:function (index, row) {
            //根据员工的状态修改离职/复职按钮的显示
         if(row.state == 1){
            $("#change_btn").linkbutton({text:"停用"})
         }else{
             $("#change_btn").linkbutton({text:"正常"})
         }
        }
    })
    //弄出一个用于输入员工信息的对话框
    //因为对话框在编辑与添加是公用同一个, 所以页面加载完毕时候提前初始化, 在点击添加与编辑时候,直接显示出来即可
    dept_dialog.dialog({
        width:400,
        height:400,
        buttons:"#bb",
        closed:"true"
    })
    
    var cmdObj = {
        //刷新列表数据
        reload: function () {
                dept_datagrid.datagrid("reload");
        },
        //编辑操作
        edit: function () {
        //因为编辑与添加公用一个对话框,所以在操作之前应该将以前的数据清空
        $("#dept_form").form("clear");
        //从datagrid中获取选中的那一行数据
        var row = dept_datagrid.datagrid("getSelected");
        console.log(row);
        if(!row){
            $.messager.alert("温馨提示","请选择要编辑的行");
        }else{
            //打开编辑对话框
            dept_dialog.dialog("setTitle","编辑部门");
            dept_dialog.dialog("open");
            //将选中row数据加载到对话框中的form表单中,用于回显
            //form加载数据原理: 根据同名匹配原则
            if(row.dept){
                row["dept.id"] = row.dept.id;
            }
            console.log(row);
            //将数据加载到form表单中
            $("#dept_form").form("load",row);//数据回显
        }
    },

        //添加操作
        add: function(){
        //因为编辑与添加公用一个对话框,所以在操作之前应该将以前的数据清空
        $("#dept_form").form("clear");
        //打开添加对话框
        dept_dialog.dialog("setTitle","添加部门");
        dept_dialog.dialog("open");
    },
        //保存员工
        save: function() {
        //获取id
        var id = $("#deptId").val();
        //因为编辑与添加公用对话框中同一个保存按钮,所以需要根据id来判断添加还是编辑操作
        var url="/department/save";
        if(id){
            url="/department/update";
        }
        //提交表单
        $("#dept_form").form("submit",{
            //表单提交路径
            url:url,
            //操作成功之后执行该函数, data是返回的数据
            //注意:data是json格式的字符串
            success: function(data){
                //1.接受返回数据
                //2.判断操作是否成功
                data = $.parseJSON(data);
                console.log(data);
                console.log(data.succeed);
                //3.操作失败,提示用户
                if (!data.succeed){
                    $.messager.alert('温馨提示',data.errorMsg);
                }else{
                    //4.操作成功
                    //4.1提示用户操作成功
                    $.messager.alert('温馨提示',"保存成功");
                    //4.2关闭当前的输入对话框
                    dept_dialog.dialog("close");
                    //4.3属性datagrid的数据, 重新刷新页面的数据
                    dept_datagrid.datagrid("reload");
                }
            }

        })
    },
        //改变状态
        changeState: function () {
        //从datagrid中获取选中的哪一行数据
        var row = dept_datagrid.datagrid("getSelected")
        if(!row){
            $.messager.alert("温馨提示","请选择要编辑");
        }else{
            $.messager.confirm("确认", "你确认想要执行这个操作?",function(r){
                if(r){
                    //1.发起请求修改状态
                    $.get("/department/changeState",{id:row.id},function(data){
                        if(!data.succeed){
                            $.messager.alert("温馨提示",data.errorMsg);
                        }else{
                            //刷新列表数据
                            dept_datagrid.datagrid("reload");
                        }
                    })
                }
            });
        }
    },
        //关闭对话框
        cancel:function() {
        dept_dialog.dialog("close");
    },
        //高级查询
        query:function() {
        //因为easyui对元素的html进行相关封装,可能导致获取到数据,建议使用easyui提供获取数据的方法
        //var keyword = $("#keyword").val();
        var keyword = $("#keyword").textbox("getValue");

        //所谓高级查询, 无非是让datagrid根据条件去更新列表数据,所以只需要刷新列表, 同时携带查询条件即可
        dept_datagrid.datagrid("load",{
            keyword:keyword,
        })
    }
    }

    //调用
    $("a[data-cmd]").click(function () {
        var cmd = $(this).data("cmd");
        cmdObj[cmd]();
    })
})











